package com.big.app.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;

/**
 * 基于阿里云的OSS 实现资源存储 */
public class AliOssUtil {
    //阿里云的key和密钥  涉及费用
    private static final String KEY="LTAI5tA9PQcCwDSCcmqyVK7S";//AccessKey ID
    private static final String KEYSECRET="QPSk1OUaFQ3MNcBO907XuUtrl3ia8J";//QPSk1OUaFQ3MNcBO907XuUtrl3ia8J
    private static final String ENDPOINT="oss-cn-hangzhou.aliyuncs.com";//存储空间的域名
    private static final String BUCKET="dataj215";//存储空间的名称

    private static OSS client;//OSS客户端

    static {
        // 创建OSSClient实例。
        client = new OSSClientBuilder().build(ENDPOINT, KEY, KEYSECRET);
    }
    /**
     * 文件上传
     * @param objName 对象名称
     * @param data  数据内容*/
    public static String upload(String objName, InputStream data){
        //上传内容到OSS,参数解读：1.存储空间名称 2.对象名 3.对象的内容
        client.putObject(BUCKET,objName,data);
        //创建访问路径 ，参数解读：1.存储空间名称 2.对象名称 3.访问链接的失效期
        return client.generatePresignedUrl(BUCKET,objName,getYear(3)).toString();
    }
    /**
     * 获取指定年
     * @return*/
    public static Date getYear(int year){
        //1.获取日历类
        Calendar calendar= Calendar.getInstance();
        //2.添加指定的年
        calendar.add(Calendar.YEAR,year);
        //3.返回 操作之后的日期
        return calendar.getTime();
    }
}
